home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Rockford Magazine
/
Rockford_Magazine_037_19xx_-_de_Side_A.d64
/
1571.d64->1541 1
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
10KB
|
310 lines
1000 goto1110
1010 poke52,112:poke56,112:clr:gosub3480:print"
1020 [151]828,[194](29712):[151]829,[194](29713):[151]840,[194](840)[170]1
1030 zm[178][194](29720)[170][194](29721)[172]256
1040 ac[178][194](29722)[170][194](29723)[172]256
1050 zg[178][194](29730)[170][194](29731)[172]256
1060 tg[178][194](29732)
1070 sg[178][194](29733)
1080 dm[178][194](828):dg[178][194](829)
1090 vh[178][194](29714)[170][194](29715)[172]256
1100 [137]2460
1110 [143] $fb=zaehler f.flackern pro byte
1120 [143] $fc,fd=vector
1130 [143] $fe=highbyte vector am anfang
1140 [153]"loadstr$ieses (NULL)ool kopiert '.d64' -asciles von
1150 print"5.25"chr$(34)"-[201][194][205]-[208][195]-[196]isks von einer 1571 (eine
1160 [153]"1541 geht leider nicht) auf eine
1170 print"formatierte 1541 [195][194][205]-[196]isk. [197]s laeft mit
1180 [153]"einem len64 und einer 1571, besser ist
1190 print"aber noch eine zusaetzliche 1541, um
1200 [153]"den 6-fachen str$iskwechsel zu sparen.
1210 print"[215]eil es die original [203]ernal [210]outinen
1220 [153]"benutzt, ist es etwas langsam:ca.25min,
1230 print"muesste dafuer aber mit allen [194]etriebs-
1240 [153]"systemen laufen. str$ie original lenpeek(NULL)
1250 print"[201][197][195]-[201][206] [210]outine meines [195]64 von 1983
1260 [153]"haengt sich beim peeketrieb mit der 1571
1270 print"im 2[205][200]z-[205]odus manchmal auf, was man am
1280 [153]"ausbleibendem (NULL)treifen erkennt. (NULL)assiert
1290 print"[145]dies bevor man das [198]ile ausgewaehlt hat,
1300 [153]"onmuss neu gestartet werden. (NULL)assiert dies
1310 print"[145]waehrend des [203]opierens muss man nur ca.
1320 [153]"10 (NULL)ec. warten, dann startet das (NULL)ro-
1330 print"gramm automatisch wieder.
1340 [153]"!!! str$ie (NULL)eilen 1000 und 1010 duerfen
1350 print"nicht 'renumberd' werden. !!!
1360 [153]"(NULL)orher am (NULL)len: 5.25-str$str$-str$isk (keine left$str$)
1370 print"mit 360k[194] formatieren. .d64-[198]ile von
1380 [153]"lenstr$-(NULL)(NULL)(NULL) auf diese str$isk kopieren. ";
1390 [151]52,112:[151]56,112:[156]
1400 [141]3480
1410 [151]840,0
1420 i[178]0
1430 [135]a:[139]a[179][177][171]1[167][151]28672[170]i,a:i[178]i[170]1:[137]1430
1440 [151]251,za
1450 i[178]0
1460 [135]a:[139]a[179][177][171]2[167][151]28928[170]i,a:i[178]i[170]1:[137]1460
1470 i[178]0
1480 [135]a:[139]a[179][177][171]3[167][151]29184[170]i,a:i[178]i[170]1:[137]1480
1490 i[178]0
1500 [135]a:[139]a[179][177][171]4[167][151]29440[170]i,a:i[178]i[170]1:[137]1500
1510 i[178]0
1520 [135]a:[139]a[179][177][171]5[167][151]30023[170]i,a:i[178]i[170]1:[137]1520
1530 [153]"<(NULL)aste>onon":[151]198,0:[146]198,1:[151]198,0
1540 [153]"loadascreeware von
1550 print"[206]ear [204]etter [209]uantity
1560 [153]"mid$ochen atndler
1570 print"[200]aeldestr.11
1580 [153]"str$-74912 (NULL)irchardt
1590 print"fuer
1600 [153]"(NULL)ockford-ascstr$ (NULL)erie
1610 print"[193]lex [218][207][208]
1620 [153]"atnmselweg 1
1630 print"[196]-85293 [210]eichertshausen
1640 [129]i[178]8[164]11
1650 [159]15,i,15:[160]15:[139]st[179][177]0[167]1680
1660 [159]15,i,15,"ui":[132]15,e1,e2$:[160]15
1670 [139][201](e2$,4)[178]"1571"[167]dm[178]i:i[178]11
1680 [130]
1690 [153]"1571 str$evicenummer ((NULL)asc(NULL)) "dm;:[133]"cmdcmdcmdcmdcmd";dm
1700 a[178]0:[129]i[178]8[164]11
1710 [159]15,i,15:[160]15:[139]st[179][177]0[167]1750
1720 [159]15,i,15,"ui":[132]15,e1,e2$:[160]15:a$[178][201](e2$,4)
1730 [139]a$[179][177]"1541"[175]a$[179][177]"1570"[175]a$[179][177]"1571"[167]1750
1740 a[178]1:[139]i[179][177]dm[167]dg[178]i:i[178]11
1750 [130]
1760 [139]dg[177]0[167]1780
1770 [139]a[178]1[167]dg[178]dm
1780 [153]"1541 str$evicenummer (chr$len(NULL)) "dg;:[133]"cmdcmdcmdcmdcmd";dg
1790 [151]828,dm:[151]829,dg:[151]29712,dm:[151]29713,dg
1800 [153]"360kpeek-right$peek(NULL)-(NULL)len-(NULL)asc(NULL)-str$isk in (NULL)aufwerk"dm" einlegen <(NULL)aste>
1810 poke198,0:wait198,1:geta$
1820 open15,dm,15
1830 print#15,"u0>m1":rem 1571-modus
1840 a=fre(0):print""a-(a<0)*65536"[194]asic [194]ytes free
1850 [153]"u0>m1 ":[141]3200
1860 [152]15,"u0"[199](4):[143] inquire dis
1870 [153]"right$nquire str$isk ":[141]3200
1880 [139]e5[177]128[167]1900
1890 [153]"(NULL)eine (NULL)asc(NULL) str$isk":[152]15,"ui":[128]
1900 [153]"(NULL)ese peekoot peeklock
1910 tr=0:se=1:si=0:ah=128:gosub3300
1920 print"[203]ennung ";
1930 fori=32771to32778:printchr$(peek(i));:next:print
1940 print"[211]ektorlaenge "peek(32779)+peek(32780)*256
1950 print"[211]kt.pro [195]luster "peek(32781)
1960 print"[210]eserviert.[211]ek. "peek(32782)+peek(32783)*256
1970 print"[203]opien d.[198][193][212] "peek(32784)
1980 print"[197]intr.i.[200]auptverz."peek(32785)+peek(32786)*256
1990 print"[211]ektoren "peek(32787)+peek(32788)*256
2000 mb=peek(32789):print"[205]edium [194]yte "mb;
2010 ifmb=252thenprint"180k[194] (1s 9[211]/[212])
2020 [139]mb[178]253[167][153]"360kpeek (2s 9(NULL)/(NULL))
2030 ifmb=254thenprint"160k[194] (1s 8[211]/[212])
2040 [139]mb[178]255[167][153]"320kpeek (2s 8(NULL)/(NULL))
2050 print"[204]aenge d.[198][193][212] "peek(32790)+peek(32791)*256
2060 ifmb<>253thenprint"[198]alsches [198]ormat"print#15,"ui":end
2070 tr=0:se=6:si=0:ah=128:zd=0
2080 print"[204]ese"int(zd/16)+1"[157].[196]ir [194]lock
2090 dv[178]0
2100 [141]3300
2110 [153]""zd[170]1"cmd.ascile: ";
2120 [129]i[178]32768[170]dv[164]32775[170]dv:a$[178][199]([194](i)):[139]a$[179][177]" "[167][153]a$;
2130 [130]
2140 [153]".";:[129]i[178]32776[170]dv[164]32778[170]dv:[153][199]([194](i));:[130]
2150 fl[178][194](32796[170]dv)[170][194](32797[170]dv)[172]256
2160 fl[178]fl[170][194](32798[170]dv)[172]65536[170][194](32799[170]dv)[172]16777216
2170 [153]" "fl"peekyte
2180 ifpeek(32776)=68andpeek(32777)=54andpeek(32778)=52andfl=174848then2200
2190 print"kein .d64-[198]ile":goto2230
2200 print"[211]oll dieses [198]ile kopiert werden (j/n)
2210 [146]198,1:[161]a$:[139]a$[179][177]"j"[175]a$[179][177]"n"[167]2200
2220 [139]a$[178]"j"[167]2270
2230 zd[178]zd[170]1:dv[178]dv[170]32:[139]dv[179]512[167]2110
2240 se[178]se[170]1:[139]se[178]10[167]se[178]1:si[178]1
2250 [139]se[179][177]4[167]2080
2260 [152]15,"ui":[128]
2270 [153]"(NULL)ese ascatn(NULL)1 / 1.left$aelfte
2280 tr=0:se=2:si=0:ah=130:gosub3300
2290 print"[204]ese [198][193][212]1 / 2.[200]aelfte
2300 tr[178]0:se[178]3:si[178]0:ah[178]132:[141]3300
2310 ac[178][194](32794[170]dv)[170][194](32795[170]dv)[172]256:[143] aktueller cluster
2320 [139]dm[178]dg[167]2360
2330 [153]"(NULL)egen (NULL)ie die (NULL)ieldiskette in str$rive"dg:[153]" <(NULL)aste>
2340 poke198,0:wait198,1:geta$
2350 rem------------------------------------------------------------------------
2360 tg=1:rem track gcr
2370 sg=0:rem sektor gcr
2380 zm=0:rem zaehler mfm cluster
2390 zg=0:rem zaehler gcr bloecke
2400 vh=140:rem vektor high auf 8c00
2410 goto2470
2420 rem------------------------------------------------------------------------
2430 rem ac=aktuell zu ladender cluster
2440 vh=140:rem vektor high auf $8c00
2450 ifdm=dgthenprint"[201][194][205]-[205][198][205]-[196]isk einlegen <[212]aste>":poke198,0:wait198,1:geta$
2460 open15,dm,15,"u0>m1
2470 a[178][184](0):[153]""a[171](a[179]0)[172]65536"peekasic peekytes free
2480 poke29732,tg
2490 poke29733,sg
2500 poke29730,zgand255
2510 poke29731,int(zg/256)
2520 print#15,"u0"chr$(4):rem inquire dis
2530 ifdm<>dgthen2560
2540 print#15,"m-r"chr$(94)chr$(0):get#15,a$:e5=asc(a$+chr$(0))
2550 ife5<128thenclose15:goto2450
2560 ifvh>252then2640
2570 poke29714,vhand255
2580 poke29715,int(vh/256)
2590 poke29720,zmand255
2600 poke29721,int(zm/256)
2610 poke29722,acand255
2620 poke29723,int(ac/256)
2630 rem------------------------------------------------------------------------
2640 b=ac+4:rem offset f.syst-bereich
2650 c=b*2:rem 2sekt.pro cluster c=wievielter sektor von anfang an gezaehlt
2660 tr=int(c/18)
2670 si=int((c-tr*18)/9)
2680 se=(c-tr*18)-(si*9)+1
2690 poke56591,89:poke56590,145:poke793,117
2700 ah=128:gosub3300
2710 poke56591,88
2720 poke253,vh:sys28928
2730 se=se+1:vh=vh+2
2740 ifse=10thense=1:si=1
2750 poke56591,89:poke56589,130:poke793,117
2760 ah=128:gosub3300
2770 poke56591,88
2780 poke253,vh:sys28928
2790 vh=vh+2
2800 zm=zm+1
2810 b=int(ac*3/2):rem b=zeiger in fat
2820 if(acand1)=1then2840:rem vz,f.ungerader cluster
2830 ac=peek(33280+b)+256*(15and(peek(33281+b))):goto2850
2840 ac=(peek(33280+b)+256*peek(33281+b))/16
2850 ifac=4095then2870
2860 ifvh<256then2560
2870 print#15,"ui":close15:rem motor aus
2880 rem------------------------------------------------------------------------
2890 ifdm=dgthenprint"[195][194][205]-[199][195][210]-[196]isk einlegen <[212]aste>":poke198,0:wait198,1:geta$
2900 open14,dg,15,"i
2910 [139]dg[179][177]dm[167]2930
2920 [161]#14,e1:[139]e1[179][177]0[167][160]14:[137]2890
2930 vh[178]140:[143] vektor high auf 9000
2940 [159]5,dg,5,"#2"
2950 [152]14,"m-w"[199](1)[199](1)[199](1)[199](65)
2960 [143]------------------------------------------------------------------------
2970 [152]14,"b-p: ";5 ; 0
2980 [151]253,vh:[158]29184
2990 [158]29440
3000 [152]14,"b-p: ";5 ; 0
3010 [152]14,"u2: "5 ; 0 ; tg ; sg
3020 [153]"peeklock (NULL)rack (NULL)ector (NULL)ector "zg,tg,sg,vh
3030 [132]14,e1,e2$,e3,e4
3040 [139]e1[177]1[167][153]e1;e2$;e3;e4:[128]
3050 vh[178]vh[170]1
3060 a[178]21:[139]tg[177]17[167]a[178]19:[139]tg[177]24[167]a[178]18:[139]tg[177]30[167]a[178]17
3070 sg[178]sg[170]1:zg[178]zg[170]1
3080 [139]sg[177][178]a[167]tg[178]tg[170]1:sg[178]0:[139]tg[177]35[167]3150
3090 [139]vh[179]256[167]2970
3100 [143]------------------------------------------------------------------------
3110 [160]5
3120 [152]14,"ui":[160]14
3130 [137]2440
3140 [143] ende
3150 [160]15:[159]15,dm,15,"ui":[160]15
3160 [160]14:[159]14,dg,15,"ui":[160]14
3170 [153]"right$vallen-right$(NULL) hatte sich"[194](840)"mal aufgehaengt
3180 end:rem---------------------------
3190 rem mfm fehlerkanal --------------
3200 input#15,e1$,e2$,e3$,e4$:printe1$","e2$","e3$","e4$" ";
3210 print#15,"m-r"chr$(94)chr$(0):get#15,a$:e5=asc(a$+chr$(0)):printe5
3220 print"b7 "(e5and128)/128;f7$((e5and128)/128)
3230 print"b6 "(e5and64)/64;"[196]rive"(e5and64)/64
3240 print"b5+4"(e5and48)/16"[211]ektorlaenge"2^((e5and48)/16)*128
3250 print"b3-0"e5and15;
3260 ife5>127thenprintfm$(e5and15):goto3280
3270 printfg$(e5and15)
3280 return:rem------------------------
3290 rem mfm block lesen---------------
3300 ifsi<>0andsi<>1then3340
3310 iftr<0ortr>39then3340
3320 ifse<1orse>9then3340
3330 goto3350
3340 print"[201]llegal [212]rack/[211]ector/[211]ide"tr;se;si:goto3470
3350 a=128:ifsi=1thena=144
3360 x=5
3370 print#15,"u0"chr$(a)chr$(tr)chr$(se)chr$(1)
3380 print"[195]luster [212]rack [211]ector [211]ide [214]ect"zm"[157]"ac,tr,se,si;" "vh
3390 print#15,"m-r"chr$(94)chr$(0):get#15,a$:e5=asc(a$+chr$(0))
3400 if(e5and14)=0then3450
3410 print"[198]ehler b.[212]r/[211]e/[211]i"tr;se;si
3420 gosub3200
3430 x=x-1:ifx>0then3370
3440 goto3470
3450 poke254,ah-3:sys28672
3460 return
3470 print#15,"ui":end:rem------------------------------------------------------
3480 poke56580,255:poke56581,255:rem ta
3490 poke56582,153:poke56583,0:rem tb
3500 poke56590,145:rem ta ein
3510 za=1 :rem zaehler f.busverzoegerun
3520 e$(0)="0":e$(1)="1"
3530 f7$(0)="[199][195][210]":f7$(1)="[205][198][205]"
3540 dimfg$(15)
3550 fg$(0)="ok"
3560 fg$(1)="ok"
3570 fg$(2)="sector not found
3580 fg$(3)[178]"no sync
3590 fg$(4)="data block not found
3600 fg$(5)[178]"data block checksum error
3610 fg$(6)="format error
3620 fg$(7)[178]"verify error
3630 fg$(8)="write protect error
3640 fg$(9)[178]"header block checksum error
3650 fg$(10)="data extends into next block
3660 fg$(11)[178]"disk id mismatch / disk change
3670 fg$(12)="-
3680 fg$(13)[178]"-
3690 fg$(14)="syntax error
3700 fg$(15)[178]"no drive present
3710 dimfm$(15)
3720 fm$(0)="ok"
3730 fm$(1)="ok"
3740 fm$(2)="sector not found
3750 fm$(3)[178]"no adress mark
3760 fm$(4)="-
3770 fm$(5)[178]"data crc error
3780 fm$(6)="format error
3790 fm$(7)[178]"verify error
3800 fm$(8)="write protect error
3810 fm$(9)[178]"header block checksum error
3820 fm$(10)="-
3830 fm$(11)[178]"disk change
3840 fm$(12)="-
3850 fm$(13)[178]"-
3860 fm$(14)="syntax error
3870 fm$(15)[178]"no drive present
3880 return
3890 rem----------------------------------------------512 byte aus mfm auslesen
3900 data169,0,133,144,162,3,138,24,101,254,133,253,160,0,132,252,173,60,3,32
3910 data177,255,169,111,32,147,255,169,77,32,168,255,169,45,32,168,255,169
3920 data82,32,168,255,169,0,32,168,255,138,32,168,255,169,0,32,168,255,32,174
3930 data255,173,60,3,32,180,255,169,111,32,150,255,169,1,238,32,208,56,229
3940 data251,208,248,32,165,255,145,252,200,208,238,32,171,255,232,224,5,144
3950 data166,165,144,41,3,208,154,96,-1
3960 rem---------------------------------------in c64 von 8000 ->90-ff kopieren
3970 data120,165,1,41,252,133,1,160,0,132,252,185,0,128,145,252,200,208,248
3980 data230,253,185,0,129,145,252,200,208,248,165,1,9,3,133,1,88,96,-2
3990 rem----------------------------------------in c64 von 90-ff->8000 kopieren
4000 data120,165,1,41,252,133,1,160,0,132,252,177,252,153,0,128,200,208,248
4010 data165,1,9,3,133,1,88,96,-3
4020 rem-----------------------------------------------zur gcr floppy schreiben
4030 data169,0,133,144,173,61,3,32,177,255,169,101,32,147,255,160,0,185,0,128
4040 data32,168,255,200,208,247,32,174,255,165,144,41,3,208,221,96,-4
4050 rem-----------------------------------cia-nmi falls bei iec-in aufgehaengt
4060 data72,138,72,152,72,169,127,141,13,221,172,13,221,48,3,76,86,254,162,8
4070 data134,198,189,112,117,157,119,2,202,16,247,76,105,254,0,0,0,0,0,0,0,82
4080 data85,78,49,48,49,48,13,0,-5